/*MyPhotoIndex Free Photo Organizer <www.myphotoindex.com>
  Copyright (C) <2006-2009>  <Asaf Yarkoni asaf@yarkoni.net>

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.*/
using System;
using System.Collections.Generic;
using System.Text;
using MyPhotoIndex.Interfaces.ImageFormatProviders;
using System.Drawing;
using MyPhotoIndex.Interfaces.Imaging;

namespace MyPhotoIndex.Plugins.ImageFormatProviders
{
    public class MissingImageFormatProvider : IImageFormatProvider
    {
        #region IImageFormatProvider Members

        public string Extention
        {
            get { throw new Exception("The method or operation is not implemented."); }
        }

        public bool IsVideo
        {
            get { return false; }
        }

        public bool IsCachable
        {
            get { return false; }
        }

        public IImageMetaData GetImageMetaData(string fileName)
        {
            return null;
        }

        public void SetImageMetaData(IImageData imageData, string fileName)
        {

        }

        public Image GetThumbnail(string fileName, Size size)
        {
            return new Bitmap(100, 100);
        }

        public Image LoadImage(IImageData imageData)
        {
            return null;
        }

        public Image LoadImage(IImageData imageData, Size requestedSize)
        {
            return null;
        }

        public bool CanRotate
        {
            get { return false; }
        }

        public void Rotate(string fileName, RotateFlipType rotationType, out Image thumbnail, out Size newImageSize)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        public bool CanSave
        {
            get { return false; }
        }

        public void SaveImage(Image image, IImageData imageData, string fileName)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        public void SaveImage(Image image, IImageData imageData, System.IO.Stream stream)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        public DateTime GetImageMediaLastUpdated(string fileName)
        {
            return DateTime.Now;
        }

        public string GetImageMediaSignature(string fileName)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        public bool Exists(string path)
        {
            return false;
        }

        public bool CanDelete(string path)
        {
            return false;
        }

        public void Delete(string path)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        public void CopyTo(IImageData imageData, string newMediaPath)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        #endregion
    }
}
